package com.common.config;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * swagger接口文档
 * @author yyq
 * 重要！如果你的项目引入junit测试，此处需要使用@WebAppConfiguration，
 * 如果没有使用junit使用@Configuration
 */
@Configuration
@EnableSwagger2
@EnableWebMvc
public class SwaggerConfig {
	
	private final Logger logger = LoggerFactory.getLogger(SwaggerConfig.class);
	/** swagger页面是否可操作*/
	@Value("${swagger.enable}")
	private boolean enable;
	@Value("${swagger.version}")
	private String version;
	
	@Bean
	public Docket api() {
		logger.info("--------------------------加载swagger2");
		return new Docket(DocumentationType.SWAGGER_2)
				.select()
				// 扫描指定包下的，或者使用所有 .any()
				.apis(RequestHandlerSelectors.basePackage("com.modules.controller"))
				.build()
				.enable(enable)
				.apiInfo(apiInfo());
	}

	private ApiInfo apiInfo() {
		return new ApiInfoBuilder()
				.title("项目接口文档")
				.description("项目接口测试")
				.version(version)
				.termsOfServiceUrl("")
				.license("")
				.licenseUrl("")
				.build();
		
	}
	
	
}